/**
单独打开编辑页的url：http://host:port/StoreAdmin/product/prod.html?doAction=edit&productId={id}
单独打开新增页的url：http://host:port/StoreAdmin/product/prod.html?doAction=edit&productTypeId={id}
**/

$j(document).ready(function () {
});



//自动以的setTimeout方法，可传递参数
function masterSetTimeout(callback,timeout,param)
{
    var args = Array.prototype.slice.call(arguments,2);
    var _cb = function()
    {
        callback.apply(null,args);
    }  
    window.setTimeout(_cb,timeout);
}


var msgTimeOutHandler;
//显示提示信息
function msg(sMsg/*String*/,isErrMsg/*Boolean*/){
	clearTimeout(msgTimeOutHandler);
	if(isErrMsg){
		$j('#errorMsgExtraBar').empty().append("<p class='cont'>"+sMsg+"</p>").show();
		setTimeout(msgFadeOut,3000);
	}else{
		$j('#successMsgExtraBar').empty().append("<p class='cont'>"+sMsg+"</p>").show();
		setTimeout(msgFadeOut,3000);
	}
}
//提示信息淡出
function msgFadeOut(){
	$j('#errorMsgExtraBar,#successMsgExtraBar').fadeOut(2000);
}

function displayButtons(status){
	disableIconBtn("save");
	disableIconBtn("saveAndReturn");
	disableIconBtn("saveAndAddSimilar");
	disableIconBtn("delete");
	if(status == null){
		//case: 新增
		enableIconBtn("save");
		enableIconBtn("saveAndReturn");
		enableIconBtn("saveAndAddSimilar");
		disableIconBtn("delete");
	}else if(status == 1){
		//case:激活
		enableIconBtn("save");
		enableIconBtn("saveAndReturn");
		enableIconBtn("saveAndAddSimilar");
		enableIconBtn("delete");
	}else if(status == 0){
		//case:不激活
		enableIconBtn("save");
		enableIconBtn("saveAndReturn");
		enableIconBtn("saveAndAddSimilar");
		enableIconBtn("delete");
	}else if(status == -1){
		//case:逻辑删除
		disableIconBtn("save");
		disableIconBtn("saveAndReturn");
		disableIconBtn("saveAndAddSimilar");
		disableIconBtn("delete");
	}
}	

String.prototype.trim= function(){  
   	// 用正则表达式将前后空格  
   	// 用空字符串替代。  
   	return this.replace(/(^\s*)|(\s*$)/g, "");  
}
var mediaId = 0; //media计数器
var skuCounter=0; //sku计数器
var wholesalePriceCounter=0;  //批发价计数器 
var problemQuantity;  //问题所在的quantity 对象类型
//存储规格数组，规格JSON格式为{id,name}
var skuOptionArray = new Array();
//存储规格值二维数组，JSON格式为{id,name,value,type}
//skuOptionValueArray[i][j] 表示第i个规格的第j个规格值，排序由sortOrder决定
var skuOptionValueArray = new Array();
//用于存放目前已关联的规格id拼接字符串
var optionIds; 
var recommendedProductCounter = 0;//推荐礼品计数器
var currentTypeId; //记录当前的推荐类型
var currentMiddleImageId;  //记录当前中图是哪个小图点击而打开的
var weightUnit = "g";  //重量单位
var isLoadImagesSuccess = true; 
var isLoadSkusSuccess = false; 
var isLoadAttributesSuccess = false; 
var isLoadRecommendsSuccess = false; 
var giftStatus = -1;

//初始化验证
function initValidate(){
	applyValidate($j("#fullDescription").get(0),"maxlength=30000");
	applyValidate($j("#shortDescription").get(0),"maxlength=250");
	applyValidate($j('#categoryId').get(0),"required");
	
}
function initVariables(){
	mediaId = 0;
	skuCounter=0;
	wholesalePriceCounter=0; 
	problemQuantity = null;
	skuOptionArray = new Array();
	skuOptionValueArray = new Array();
	optionIds = "";
	recommendedProductCounter = 0;
	currentTypeId ="";
	currentMiddleImageId = ""; 
	isLoadImagesSuccess = true; 
	isLoadSkusSuccess = false; 
	isLoadAttributesSuccess = false; 
	isLoadRecommendsSuccess = false; 
	giftStatus = -1;
}

//上传产品目录图片回调函数
function uploadImagehandler(mediaUrl){
    var src_m0 = mediaUrl.substring(0,mediaUrl.lastIndexOf("."))+"_m0"+mediaUrl.substring(mediaUrl.lastIndexOf("."));
	$j("#giftImage").get(0).src=__mediaPath+src_m0;
	$j("#giftImage").parent('a').attr('href',__mediaPath+mediaUrl);
}

//验证函数
function validateAction(){	
	var flag = true;
	if(flag){
		 if(!validateGift($j("#giftForm")[0])){
	    	focusOnInvalidTab();
	    	flag = false;
	   	}
   	}
   	return flag;
}

//保存产品 actionCode=0表示保存礼品,=1表示保存礼品并返回列表，=2表示保存礼品并添加类似
function saveGift(actionCode){
	if(!validateAction()){
    	return ;
    }
    var postData="";
	
	setMembership();
    postData += $j('#giftForm :input').serialize();
    var url=$j('#giftForm').attr('action')+"?doAction=save";
    
    var callbackFunc = null;
    if(actionCode == 0){
    	callbackFunc = saveGiftCallback;
    }else if(actionCode == 1){
    	callbackFunc = saveGiftAndReturnCallback;
    }else if(actionCode == 2){
    	callbackFunc = saveGiftAndAddSimilarCallback;
    }
    
    $j.post(url,postData,callbackFunc,"json");
}

//设置会员兑换的等级，以字符串提交
function setMembership(){
	var _membership="";
	
	var paraData=$j("#giftForm :input[name='membershipCheck']").serializeArray();
	if(paraData.length > 0){
		$j.each(paraData,function(i,n){
			_membership +=n.value+",";
		});
	}
	_membership = _membership.substr(0, _membership.length-1);
	
	$j('#membership').val(_membership);
}

//保存礼品回调
function saveGiftCallback(data){
	if(data.error && data.error!=""){
		jAlert(data.error);
		return ;
	}

	msg("["+data.giftName+"]"+__FMT.giftForm_save_success);
	saveGiftCallbackBase(data);
}

//保存礼品并返回回调
function saveGiftAndReturnCallback(data){
	if(data.error && data.error!=""){
		jAlert(data.error);
		return ;
	}

	saveGiftCallbackBase(data);
	returnToList();
	sysMsg("["+data.giftName+"]"+__FMT.giftForm_save_success);
}

//保存礼品并添加类似礼品回调
function saveGiftAndAddSimilarCallback(data){
	if(data.error && data.error!=""){
		jAlert(data.error);
		return ;
	}

	msg("["+data.giftName+"]"+__FMT.giftForm_save_success);
	saveGiftCallbackBase(data);
	disableIconBtn("delete");
	resetFieldForAddSimilar();
	
}
//为添加类似礼品更新field
function resetFieldForAddSimilar(){
	$j("#giftId").val("");
	$j("#giftName").val("");
	$j("#giftCode").val("");
}

//基本：保存产品回调函数
function saveGiftCallbackBase(data){
	
	if(data.giftId){
		$j("#giftId").val(data.giftId);
	}
	if(data.giftCode){
		$j("#giftCode").val(data.giftCode);
	}

	displayButtons(data.status);
	refreshParent();
}

// 删除当前编辑的产品
function deleteGift(){
	var entityName = $j("#giftName").val();
	if (confirm(__FMT.common_message_confirmDeleteThis + " " + entityName + "?")) {
		var paraData = {
			giftId: $j("#giftId").val()
		};
		$j.post(__ctxPath + "/sales/gift/blank.html?doAction=delete", paraData, deleteGiftCallback,"json");
		
	}
}


//删除后的回调函数
function deleteGiftCallback(data){
	
	if(data.deleteInfos){
		var deleteInfo = data.deleteInfos[0];
		if(deleteInfo.deleteStatus == 0){
			//case:有正在进行中的订单，删除失败
			msg(__FMT.gift_label + deleteInfo.giftName +__FMT.gift_delete_false,true);			
		}else{
			//case:删除成功
			returnToList();
			sysMsg("'"+deleteInfo.giftName+"'"+__FMT.gift_delete_success);
			refreshParent();
		}
	
	}
}


//判断str1是否大于str2, str1和str2都是字符串值
function isLargerEqual(str1,str2){
	return parseInt(str1)>=parseInt(str2);
}	
//是否非负整数 str是一个字符串值
function isNotNegativeInteger(str){
	var regExp = new RegExp("^(([1-9][0-9]*)|0)$");
	return regExp.test(str);
}


//重置规格值选择区表现层 jSkuOptionValueLi是这个区域的jquery对象
function resetSelectedOptionValue(jSkuOptionValueLi){
	jSkuOptionValueLi.find('em').empty().append('<b class="default"></b>');
	jSkuOptionValueLi.find('ul li').removeClass("curr").find('i').remove();
}

//选择目录
function selectCategory(){
	showDialogOfgiftCategorySelector(); //调用giftCategorySelector.tag文档内的方法
}

//选择目录callback category 是一个json对象 {id，name}
function selectCategoryCallback(category){
	$j.getJSON(__ctxPath+"/sales/gift/blank.html?doAction=getFullCategoryPathName&categoryId="+category.id,null,getFullCategoryPathNameCallback);
	$j('#categoryId').val(category.id);
	closeDialogOfgiftCategorySelector();
	$j('#categoryId').next('img').remove();//如果有验证错误的移除
}
//根据名称获取目录全名
function getFullCategoryPathNameCallback(data){
	$j('#categoryName').html(data.fullCategoryPathName);
}

//移除验证不通过标志 inputDOM是需要移除的表单元素dom
function removeValidateNotPassTip(inputDOM){
	$j(inputDOM).removeClass("x-form-invalid");
	$j(inputDOM).next('img').remove();
}


//从giftForm返回到list
function returnToList(){
	getCurrListHeight();
	$j('#formDiv').hide();
	$j('#mainDiv').show();
}

//刷新父窗口的产品列表
function refreshParent(){
	refreshGiftList();
}


//将两个数组 组合成 一个数组(数组值均为字符串)，例如[0,1]与[a,b]组合成[0,a][0,b][1,a][1,b]
function arrayConcat(array1,array2){
	var array = new Array();
	for(var i=0; i<array1.length; i++){
		for(var j=0; j<array2.length; j++){
			array.push(array1[i]+","+array2[j]);
		}
	}
	return array;
}

//加载图片区域成功后的回调函数
function loadImagesCallback(){
	isLoadImagesSuccess = true;
	loadButtons();
}

//加载显示按钮，必须等所有ajaxload的区域全部加载完成后display
function loadButtons(){
	if(isLoadImagesSuccess ){
		displayButtons(giftStatus); //显示操作按钮
	}
}

